package v1

import (
	"itam/internal/model"

	"github.com/gogf/gf/v2/frame/g"
)

// create
type EnvCreateReq struct {
	g.Meta `path:"/env" tags:"环境" method:"post" summary:"新增环境"`
	Name   string `v:"required#内容模型不能为空" json:"name" dc:"环境名称"`
}
type EnvCreateRes struct {
	Id int `json:"id"`
}

// delete
type EnvDeleteReq struct {
	g.Meta `path:"/env/{Id}" tags:"环境" method:"delete" summary:"删除环境"`
	Id     int `in:"path" json:"id" v:"min:1#请选择需要删除的内容" json:"id" dc:"环境id"`
}
type EnvDeleteRes struct{}

// getlist
type EnvGetListReq struct {
	g.Meta `path:"/env" method:"get" summary:"环境查询列表" tags:"环境"`
	Page   int    `json:"page"        dc:"分页码"`
	Size   int    `json:"size" d:"50" dc:"分页数量"`
	Name   string `json:"name"  dc:"环境名称"`
}

type EnvGetListRes struct {
	List  []model.EnvGetlistOutputItem `json:"list" description:"列表"`
	Page  int                          `json:"page" description:"分页码"`
	Size  int                          `json:"size" description:"分页数量"`
	Total int                          `json:"total" description:"数据总数"`
}

//type EnvGetlistOutputItem struct {
//	Env *EnvListItem `json:"env"`
//	//Middleware *EnvListMiddlewareItem `json:"middleware"`
//	//Vm         *EnvListVmItem         `json:"vm"`
//}
//
//type EnvListItem struct {
//	Id   int    `json:"id"   description:""`
//	Name string `json:"name" description:"环境名称"`
//}

// detail
type EnvDetailReq struct {
	g.Meta `path:"/env/{id}" tags:"环境" method:"get" summary:"环境详情"`
	Id     int `in:"path" json:"id" v:"min:1#请选择需要查询的虚拟机" dc:"环境id"`
}
type EnvDetailRes struct {
	VmList         []model.EnvDetailVmItem         `json:"vmList" description:"虚拟机列表"`
	MiddlewareList []model.EnvDetailMiddlewareItem `json:"middlewareList" description:"中间件列表"`
}

//type EnvDetailVmItem struct {
//	Id        int    `json:"id"             description:""`
//	Name      string `json:"name"           description:"名称"`
//	Owner     string `json:"owner"          description:"负责人"`
//	IpAddress string `json:"ipAddress"      description:"ip地址"`
//	EnvId     int    `json:"envId"          description:"环境id"`
//}
//
//type EnvDetailMiddlewareItem struct {
//	Id        int    `json:"id"             description:""`
//	Name      string `json:"name"           description:"名称"`
//	Owner     string `json:"owner"          description:"负责人"`
//	IpAddress string `json:"ipAddress"      description:"ip地址"`
//	EnvId     int    `json:"envId"     description:"环境id"`
//}
